Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


Dockerfile f3ec20b14e4e38b597af7f2ccee6cc16bfb5d6c7 (f3ec20b1) Text, 1.89 KB

Tff7b72ARG Te6edf3NODE_IMAGETff7b72=node:22-alpine
Tff7b72ARG Te6edf3NODE_HASHTff7b72=sha256:0340fa682d72068edf603c305bfbc10e23219fb0e40df58d9ea4d6f33a9798bf
Tff7b72ARG Te6edf3PYTHON_IMAGETff7b72=python:3.13-alpine
Tff7b72ARG Te6edf3PYTHON_HASHTff7b72=sha256:e7e041128ffc3e3600509f508e44d34ab08ff432bdb62ec508d01dfc5ca459f7

Tff7b72FROM Ta5d6ff${NODE_IMAGE}@${NODE_HASH} Tff7b72AS Ta5d6ffbuild-frontend

Tff7b72WORKDIR Ta5d6ff/src

Tff7b72COPY package.json vite.config.js tailwind.config.js postcss.config.js ./
Tff7b72COPY pnpm-lock.yaml ./
Tff7b72COPY meshchatx/src/frontend ./meshchatx/src/frontend

Tff7b72RUN corepack Tffa657enable Tff7b72&& corepack prepare pnpm@latest --activate

Tff7b72RUN pnpm install --frozen-lockfile Tff7b72&& Tffea00\
pnpm run build-frontend

Tff7b72FROM Ta5d6ff${PYTHON_IMAGE}@${PYTHON_HASH}

Tff7b72WORKDIR Ta5d6ff/app

Tff7b72RUN apk add --no-cache ffmpeg espeak-ng opusfile libffi-dev su-exec py3-setuptools Tff7b72&& Tffea00\
addgroup -g T79c0ff1000 meshchat Tff7b72&& adduser -u T79c0ff1000 -G meshchat -S meshchat Tff7b72&& Tffea00\
mkdir -p /config Tff7b72&& chown meshchat:meshchat /config

Tff7b72COPY pyproject.toml poetry.lock ./
Tff7b72RUN apk add --no-cache --virtual .build-deps Tffea00\
gcc Tffea00\
musl-dev Tffea00\
linux-headers Tffea00\
python3-dev Tff7b72&& Tffea00\
pip install --no-cache-dir poetry setuptools Tff7b72&& Tffea00\
poetry config virtualenvs.create Tffa657false Tff7b72&& Tffea00\
poetry install --no-root --only main Tff7b72&& Tffea00\
# Trigger LXST filter compilation Tff7b72while build tools are still present
# We use a more thorough approach to ensure compilation completes
python -c Ta5d6ff"import LXST; import LXST.Filters" Tff7b72|| Tffa657true Tff7b72&& Tffea00\
python -m compileall /usr/local/lib/python3.13/site-packages Tff7b72&& Tffea00\
apk del .build-deps

Tff7b72COPY --chownTff7b72=meshchat:meshchat meshchatx ./meshchatx
Tff7b72COPY --fromTff7b72=build-frontend --chownTff7b72=meshchat:meshchat /src/meshchatx/public ./meshchatx/public

Tff7b72ENV Te6edf3PYTHONUNBUFFEREDTff7b72=T79c0ff1
Tff7b72ENV Te6edf3PYTHONDONTWRITEBYTECODETff7b72=T79c0ff1

Tff7b72CMD Tb4b4b4[Ta5d6ff"sh"Tb4b4b4, Ta5d6ff"-c"Tb4b4b4, Ta5d6ff"chown -R meshchat:meshchat /config && exec su-exec meshchat python -m meshchatx.meshchat --host=0.0.0.0 --reticulum-config-dir=/config/.reticulum --storage-dir=/config/.meshchat --headless"Tb4b4b4]


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────